DOCUMENTS
how to change wild pokémon
By Philip Reuben
(http://prtranslations.cjb.net)
Here's some information how to change the wild Pokémon you fight in different places in the Pokémon games. Hopefully it will help to make even better Pokémon hacks, and also if anyone manages to add extra Pokémon to the games they will be able to add them into the wild. Anyway, I hope this makes sense! Please post on the Message Board if it doesn't. You need to know how to use a hex editor before you read this.
red/blue/green/yellow
There are ten Pokémon to fight in every area. When you fight a wild battle, one of these ten is chosen at random for you to fight. This means you will be less likely to fight a Pokémon if there are less of it in those ten slots (which is how some Pokémon are rarer). The data is stored with the level first (in hex), then the Pokémon's hex value (which, in the Red/Blue/Green/Yellow versions, have nothing to do with the Pokémon's numbers). Between each area's data is 00 then another number (which I think is random).
In Pokémon Red/Blue (Eng), the data for the areas starts at D0E0h. Go there in a hex editor and you will find the following hex values:
- 0324 03A5 03A5 02A5 0224 0324 0324 04A5 0424 0524 0019
The 0019 at the end is just to show that it's the end of that area's Pokémon. It is not possible to make more Pokémon be in one area and less in another by moving this, there is more information about this later on. The hex value for Pidgey is 24h, and the hex value for Rattata is A5h. Because of this, the rest of the numbers mean...
- 0324 = Level 3 Pidgey
- 03A5 = Level 3 Rattata
- 03A5 = Level 3 Rattata
- 02A5 = Level 2 Rattata
- 0224 = Level 2 Pidgey
- 0324 = Level 3 Pidgey
- 0324 = Level 3 Pidgey
- 04A5 = Level 4 Rattata
- 0424 = Level 4 Pidgey
- 0524 = Level 5 Pidgey
That's the Pokémon data for Route 1! When there are pieces of grass near each other, they will probably share the same data (like with all the grass patches on Route 1). This won't always be the case though.
Anyway, if you change those Pokémon values to...
- 0399 0399 0399 02B0 02B0 03B0 03B1 04B1 04B1 0509
...and play Route 1, the game suddenly seems to make so much more sense!
It might take a bit of searching to find the area you want, but if you know what Pokémon you can catch there and their levels you should be okay.
Like I said above, it isn't possible to make more Pokémon appear in one area than another. It turns out that the dividers between the areas are there for no reason, and that the game always acts as if there are ten Pokémon in each area, with two bytes between each area. Also, it treats the new divider you have put in as if it was a Pokémon. Oh look, a Level 0 Gastly! I assume this is the same in every version, although I've only tested it in Yellow (Eng).
In Pokémon Yellow (Eng) the data starts at CD8Ch. It works in exactly the same way apart from that though. It also works the same in Red/Green/Blue (Jap), but the data starts at D156h in these versions. I would have expected Blue (Jap) to be different than Red/Green (Jap), but it isn't.
gold/silver
In Pokémon Gold/Silver (Jap), the data starts at 2B434. It does not work in quite the same way as with the other games, it is a bit more complicated.
At any one time, there are 7 different Pokémon which could be in an area. However, there are 3 different time periods (Morning, Day and Night), and they each have a different set of 7 Pokémon. Other than that, it's about the same. One thing which could even make it easier is that in Gold/Silver (Jap) the hex values for the Pokémon are the same as their numbers, but in hex. Something similar to 1A01 1919 19 is between each area's data (it is slightly different each time).
The data I'll use as an example is at 2B463. It's the grassy areas on Route 30 (which leads up to the house where Professor Oak gives you the Pokédex). Here's what it looks like in a hex editor...
- 0210 030A 040A 040B 0410 0410 0410 0210 030A 0410 040B 040A 050B 050B 03A7 0313 04A3 0413 04A3 04A3 04A3 1A02 1919 19
The 1A02 1919 19 at the end just means that it's the end of that area's data. Here's what the rest means...
Morning
- 0210 = Level 2 Pidgey
- 030A = Level 3 Caterpie
- 040A = Level 4 Caterpie
- 040B = Level 4 Metapod
- 0410 = Level 4 Pidgey
- 0410 = Level 4 Pidgey
- 0410 = Level 4 Pidgey
Day
- 0210 = Level 2 Pidgey
- 030A = Level 3 Caterpie
- 0410 = Level 4 Pidgey
- 040B = Level 4 Metapod
- 040A = Level 4 Caterpie
- 050B = Level 5 Metapod
- 050B = Level 5 Metapod
Night
- 03A7 = Level 3 Spinarak
- 0313 = Level 3 Rattata
- 04A3 = Level 4 Hoot-Hoot
- 0413 = Level 4 Rattata
- 04A3 = Level 4 Hoot-Hoot
- 04A3 = Level 4 Hoot-Hoot
- 04A3 = Level 4 Hoot-Hoot
So, why not change all that to...
- 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF 05DF
...and make the game very boring! I think Lorelei would like it though.
Although I am almost completely sure that the information in the Red/Blue/Green/Yellow section is correct, I'm not completely sure about the Gold/Silver section. When I tested this again with Route 29, there were certain Pokémon I didn't find that I think I should have done (although it's random, so they probably just weren't chosen).